﻿using System;

namespace TypeBuilderFx.Core.Emitters
{
	/// <summary>Level of validation for reference type.</summary>
	public enum ReferenceTypeValidationLevel
	{
		/// <summary>No validation is done, everything is allowed.</summary>
		AllowAll,
		/// <summary>Disallow <c>null</c> references.</summary>
		NoNull,
		/// <summary>
		/// Disallow <c>null</c> references and empty <see cref="string"/> (applies only for <see cref="string"/>, otherwise
		/// falls back to <see cref="ReferenceTypeValidationLevel.NoNull"/>).
		/// </summary>
		NoNullAndEmptyString
	}
}